home *** CD-ROM | disk | FTP | other *** search
/ Over 1,000 Windows 95 Programs / Over 1000 Windows 95 Programs (Microforum) (Disc 1).iso / 1245 / osource.cbl < prev    next >
Text File  |  1997-04-18  |  35KB  |  816 lines

  1.       ******************************************************************
  2.       *                     IDENTIFICATION DIVISION                    *
  3.       ******************************************************************
  4.       * A12K
  5.        IDENTIFICATION DIVISION.
  6.        PROGRAM-ID. StockCon.
  7.        AUTHOR. Amanda.
  8.        INSTALLATION. WorkShop.
  9.        DATE-WRITTEN. May 18, 1996.
  10.        DATE-COMPILED. May 18, 1996.
  11.        SECURITY. For use by workshop only.
  12.  
  13.       ******************************************************************
  14.       *                     ENVIRONMENT DIVISION                       *
  15.       ******************************************************************
  16.  
  17.        ENVIRONMENT DIVISION.
  18.        CONFIGURATION SECTION.
  19.        SOURCE-COMPUTER. COMPAC-CONTURA-4-25CX.
  20.        OBJECT-COMPUTER. COMPAC-CONTURA-4-25CX.
  21.  
  22.       ******************************************************************
  23.       *                      INPUT-OUTPUT SECTION                      *
  24.       ******************************************************************
  25.  
  26.        INPUT-OUTPUT SECTION.
  27.  
  28.        FILE-CONTROL.
  29.  
  30.            SELECT ToolStock
  31.            ASSIGN TO DISK
  32.                ORGANIZATION IS INDEXED
  33.                ACCESS MODE IS DYNAMIC
  34.                RECORD KEY IS ToolStockKey
  35.                FILE STATUS IS ToolStockStatus.
  36.  
  37.            SELECT HireTransactions
  38.            ASSIGN TO DISK
  39.                ORGANIZATION IS INDEXED
  40.                ACCESS MODE IS DYNAMIC
  41.                RECORD KEY IS HireTransactionsKey
  42.                FILE STATUS IS HireTransactionsStatus.
  43.  
  44.            SELECT SalesTransactions
  45.            ASSIGN TO DISK
  46.                ORGANIZATION IS INDEXED
  47.                ACCESS MODE IS DYNAMIC
  48.                RECORD KEY IS SalesTransactionsKey
  49.                FILE STATUS IS SalesTransactionsStatus.
  50.  
  51.       ******************************************************************
  52.       *                         DATA DIVISION                          *
  53.       ******************************************************************
  54.  
  55.        DATA DIVISION.
  56.  
  57.        FILE SECTION.
  58.  
  59.        FD ToolStock
  60.           VALUE OF FILE-ID IS "TOOLSTOC.DAT".
  61.  
  62.        01 ToolStockRecord.
  63.           05 ToolStockKey.
  64.              10 ToolStockStocknum PIC 9(3).
  65.           05 ToolStockCodesell PIC X(5).
  66.           05 ToolStockCodehire PIC X(5).
  67.           05 ToolStockLevelhire PIC 9.
  68.           05 ToolStockLevelsell PIC 9(3).
  69.  
  70.        FD HireTransactions
  71.           VALUE OF FILE-ID IS "HIRETRAN.DAT".
  72.  
  73.           01 HireTransactionsRecord.
  74.              05 HireTransactionsKey.
  75.                 10 HTCustNum PIC X(5).
  76.              05 HTCodeHire.
  77.                 10 HTType PIC A.
  78.                 10 HTSerial PIC 9(3).
  79.                 10 HTSorh PIC A.
  80.              05 HTQuantity PIC 9(2).
  81.              05 HTUnitprice PIC 9(5)V9(2).
  82.              05 HTTaxrate PIC 9(3).
  83.              05 HTNumhire PIC 9(3).
  84.              05 HTChgday PIC 9(6).
  85.              05 HTTotal PIC 9(9).
  86.  
  87.        FD SalesTransactions
  88.           VALUE OF FILE-ID IS "SALESTRA.DAT".
  89.  
  90.        01 SalesTransactionsRecord.
  91.           05 SalesTransactionsKey.
  92.              10 STInvNum PIC 9(5).
  93.           05 STCodesell.
  94.              10 STType PIC A.
  95.              10 STSerial PIC 9(3).
  96.              10 STSorh PIC A.
  97.           05 STQuantity PIC 9(2).
  98.           05 STUnitPrice PIC 9(5)V9(2).
  99.           05 STTaxRate PIC 9(3).
  100.           05 STTotal PIC 9(9).
  101.  
  102.       ******************************************************************
  103.       *                    WORKING STORAGE SECTION                     *
  104.       ******************************************************************
  105.  
  106.        WORKING-STORAGE SECTION.
  107.  
  108.       ******************************************************************
  109.       *                       General Constants                        *
  110.       ******************************************************************
  111.  
  112.        78  ItIsFalse                             VALUE 0               .
  113.        78  ItIsTrue                              VALUE 1               .
  114.  
  115.       ******************************************************************
  116.       *             File Input Output Control Constants                *
  117.       ******************************************************************
  118.  
  119.        78  InputOutputIsSuccessful                           VALUE "00".
  120.  
  121.       ******************************************************************
  122.       *                  Flow of Control Constants                     +
  123.       ******************************************************************
  124.  
  125.        78  StockFileWillBeMaintained                         VALUE    1.
  126.        78  HiredToolsFileWillBeMaintained                    VALUE    2.
  127.        78  SoldToolsFileWillBeMaintained                     VALUE    3.
  128.        78  ProgramWillBeQuit                                 VALUE    4.
  129.        78  StockDataWillBeAdded                              VALUE    1.
  130.        78  StockDataWillBeUpdated                            VALUE    2.
  131.        78  StockDataWillBeDeleted                            VALUE    3.
  132.        78  StockDataWillBeInquired                           VALUE    4.
  133.        78  StockMenuWillBeQuit                               VALUE    5.
  134.  
  135.       ******************************************************************
  136.       *                  Flow of Control Switches                      *
  137.       ******************************************************************
  138.  
  139.        77  FatalIOErrorHasOccured                PIC 9(001)            .
  140.        77  MainProcessIsOver                     PIC 9(001)            .
  141.        77  StockFileMaintenanceIsOver            PIC 9(001)            .
  142.  
  143.       ******************************************************************
  144.       *                       General Variables                        *
  145.       ******************************************************************
  146.  
  147.        77  ToolStockStatus                       PIC X(002)            .
  148.        77  HireTransactionsStatus                PIC X(002)            .
  149.        77  SalesTransactionsStatus               PIC X(002)            .
  150.        77  ResponseOfUser                        PIC 9(001)            .
  151.  
  152.        01 WToolStockRecord.
  153.           05 WToolStockKey.
  154.              10 WToolStockStocknum PIC 9(3).
  155.           05 WToolStockCodesell PIC X(5).
  156.           05 WToolStockCodehire PIC X(5).
  157.           05 WToolStockLevelhire PIC 9.
  158.           05 WToolStockLevelsell PIC 9(3).
  159.  
  160.        01 WHireTransactionsRecord.
  161.           05 WHireTransactionsKey.
  162.              10 WHTCustNum PIC X(5).
  163.           05 HTCodeHire.
  164.              10 WHTType PIC A.
  165.              10 WHTSerial PIC 9(3).
  166.              10 WHTSorh PIC A.
  167.           05 WHTQuantity PIC 9(2).
  168.           05 WHTUnitprice PIC ZZZZ9.99.
  169.           05 WHTTaxrate PIC ZZ9.
  170.           05 WHTNumhire PIC 9(3).
  171.           05 WHTChgday PIC 9(6).
  172.           05 WHTTotal PIC 9(9).
  173.  
  174.        01 WSalesTransactionsRecord.
  175.           05 WSalesTransactionsKey.
  176.              10 WSTInvNum PIC 9(5).
  177.           05 WSTCodesell.
  178.              10 WSTType PIC A.
  179.              10 WSTSerial PIC 9(3).
  180.              10 WSTSorh PIC A.
  181.           05 WSTQuantity PIC 9(2).
  182.           05 WSTUnitPrice PIC ZZZZ9.99.
  183.           05 WSTTaxRate PIC ZZ9.
  184.           05 WSTTotal PIC 9(9).
  185.  
  186.       ******************************************************************
  187.       *                      PROCEDURE DIVISION                        *
  188.       ******************************************************************
  189.  
  190.        PROCEDURE DIVISION.
  191.  
  192.       ******************************************************************
  193.       *                        DECLARATIVES                            *
  194.       ******************************************************************
  195.  
  196.        DECLARATIVES.
  197.  
  198.        INPUT-OUTPUT-ERROR SECTION.
  199.            USE AFTER STANDARD ERROR PROCEDURE ON I-O.
  200.        CheckFatalErrors.
  201.            Move ItIsTrue to FatalIOErrorHasOccured.
  202.            Perform A113-Terminate-Program.
  203.  
  204.        END DECLARATIVES.
  205.  
  206.       ******************************************************************
  207.       *                         Main Procedure                         *
  208.       ******************************************************************
  209.  
  210.        A000-ProgramStockCon.
  211.            Perform A111-Start-Program.
  212.            Perform A112-DoMainProcess.
  213.            Perform A113-Terminate-Program.
  214.  
  215.       ******************************************************************
  216.       *                         Start Program                          *
  217.       ******************************************************************
  218.  
  219.        A111-Start-Program.
  220.            Move ItIsFalse to FatalIOErrorHasOccured.
  221.            Perform A11Q-CheckIfFilesExists.
  222.            Perform A114-OpenToolStock.
  223.            Perform A115-OpenHireTransactions.
  224.            Perform A116-OpenSalesTransactions.
  225.  
  226.       ******************************************************************
  227.       *                    Check if files exist                        *
  228.       ******************************************************************
  229.  
  230.        A11Q-CheckIfFilesExists.
  231.            Open Input ToolStock.
  232.            If ToolStockStatus = InputOutputIsSuccessful
  233.                Perform A11J-CloseToolStockFile
  234.            Else
  235.                Display "Files have not yet been created! "
  236.                Display "1) Create the files 2) Quit the program"
  237.                Accept ResponseOfUser
  238.                Perform A11R-ExecuteSelectedFunction
  239.            End-if.
  240.  
  241.       ******************************************************************
  242.       *                         Close ToolStock                        *
  243.       ******************************************************************
  244.  
  245.        A11J-CloseToolStockFile.
  246.            Close ToolStock.
  247.            If ToolStockStatus not = InputOutputIsSuccessful
  248.                Perform A11K-HandleFatalError
  249.            End-If.
  250.  
  251.       ******************************************************************
  252.       *                        Handle Fatal Error                      *
  253.       ******************************************************************
  254.  
  255.        A11K-HandleFatalError.
  256.            Display "Fatal error in A11K ".
  257.            Display "SalesTransactionsStatus = " SalesTransactionsStatus.
  258.            Stop Run.
  259.  
  260.       ******************************************************************
  261.       *                  Execute Selected Function                     *
  262.       ******************************************************************
  263.  
  264.        A11R-ExecuteSelectedFunction.
  265.            Evaluate True
  266.                When ResponseOfUser = 1
  267.                    Perform A11S-CreateFiles
  268.                When ResponseOfUser = 2
  269.                    Perform A11T-ExitProgram
  270.            End-Evaluate.
  271.  
  272.       ******************************************************************
  273.       *                          Create Files                          *
  274.       ******************************************************************
  275.  
  276.        A11S-CreateFiles.
  277.            Perform A11U-CreateToolStock.
  278.            Perform A11W-CreateHireTransactions.
  279.            Perform A11X-CreateSalesTransactions.
  280.  
  281.       ******************************************************************
  282.       *                       Create ToolStock                         *
  283.       ******************************************************************
  284.  
  285.        A11U-CreateToolStock.
  286.            Open Output ToolStock.
  287.            If ToolStockStatus = InputOutputIsSuccessful
  288.                Perform A11J-CloseToolStockFile
  289.            Else
  290.                Perform A11V-HandleFatalError
  291.            End-If.
  292.  
  293.       ******************************************************************
  294.       *                        Handle Fatal Error                      *
  295.       ******************************************************************
  296.  
  297.        A11V-HandleFatalError.
  298.            Display "Fatal error in A11V ".
  299.            Display "ToolStockStatus = " ToolStockStatus.
  300.            Stop Run.
  301.  
  302.       ******************************************************************
  303.       *                    Create HireTransactions                     *
  304.       ******************************************************************
  305.  
  306.        A11W-CreateHireTransactions.
  307.            Open Output HireTransactions.
  308.            If HireTransactionsStatus = InputOutputIsSuccessful
  309.                Perform A11L-CloseHiredToolsFile
  310.            Else
  311.                Perform A11Y-HandleFatalError
  312.            End-If.
  313.  
  314.       ******************************************************************
  315.       *                      Close HiredToolsFile                      *
  316.       ******************************************************************
  317.  
  318.        A11L-CloseHiredToolsFile.
  319.            Close HireTransactions.
  320.            If HireTransactionsStatus not = InputOutputIsSuccessful
  321.                Perform A11M-HandleFatalError
  322.            End-If.
  323.  
  324.       ******************************************************************
  325.       *                        Handle Fatal Error                      *
  326.       ******************************************************************
  327.  
  328.        A11M-HandleFatalError.
  329.            Display "Fatal error in A11M ".
  330.            Display "HireTransactionsStatus = " HireTransactionsStatus.
  331.            Stop Run.
  332.  
  333.       ******************************************************************
  334.       *                        Handle Fatal Error                      *
  335.       ******************************************************************
  336.  
  337.        A11Y-HandleFatalError.
  338.            Display "Fatal error in A11Y ".
  339.            Display "HireTransactionsStatus = " HireTransactionsStatus.
  340.            Stop Run.
  341.  
  342.       ******************************************************************
  343.       *                   Create SalesTransactions                     *
  344.       ******************************************************************
  345.  
  346.        A11X-CreateSalesTransactions.
  347.            Open Output SalesTransactions.
  348.            if SalesTransactionsStatus = InputOutputIsSuccessful
  349.                Perform A11N-CloseSoldToolsFile
  350.            Else
  351.                Perform A11Z-HandleFatalError
  352.            end-if.
  353.  
  354.       ******************************************************************
  355.       *                    Close SalesTransactions                     *
  356.       ******************************************************************
  357.  
  358.        A11N-CloseSoldToolsFile.
  359.            Close SalesTransactions.
  360.            if SalesTransactionsStatus not = InputOutputIsSuccessful
  361.                Perform A11O-HandleFatalError
  362.            end-if.
  363.  
  364.       ******************************************************************
  365.       *                        Handle Fatal Error                      *
  366.       ******************************************************************
  367.  
  368.        A11O-HandleFatalError.
  369.            Display "Fatal error in A11O ".
  370.            Display "SalesTransactionsStatus = " SalesTransactionsStatus.
  371.            Stop Run.
  372.  
  373.       ******************************************************************
  374.       *                        Handle Fatal Error                      *
  375.       ******************************************************************
  376.  
  377.        A11Z-HandleFatalError.
  378.            Display "Fatal error in A11Z ".
  379.            Display "SalesTransactionsStatus = " SalesTransactionsStatus.
  380.            Stop Run.
  381.  
  382.       ******************************************************************
  383.       *                          Exit Program                          *
  384.       ******************************************************************
  385.  
  386.        A11T-ExitProgram.
  387.            Display "Please strike Enter to quit".
  388.            STOP " ".
  389.            Stop Run.
  390.  
  391.       ******************************************************************
  392.       *                        Open ToolStock                          *
  393.       ******************************************************************
  394.  
  395.        A114-OpenToolStock.
  396.            Open i-o ToolStock.
  397.            If ToolStockStatus not = InputOutputIsSuccessful
  398.                Perform A117-HandleFatalError
  399.            End-If.
  400.  
  401.       ******************************************************************
  402.       *                        Handle Fatal Error                      *
  403.       ******************************************************************
  404.  
  405.        A117-HandleFatalError.
  406.            Display "Fatal error in A117 ".
  407.            Display "ToolStockStatus = " ToolStockStatus.
  408.            Stop Run.
  409.  
  410.       ******************************************************************
  411.       *                    OpenHireTransactions                        *
  412.       ******************************************************************
  413.  
  414.        A115-OpenHireTransactions.
  415.            Open i-o HireTransactions.
  416.            If HireTransactionsStatus not = InputOutputIsSuccessful
  417.                Perform A118-HandleFatalError
  418.            End-If.
  419.  
  420.       ******************************************************************
  421.       *                        Handle Fatal Error                      *
  422.       ******************************************************************
  423.  
  424.        A118-HandleFatalError.
  425.            Display "Fatal error in A118 ".
  426.            Display "HireTransactionsStatus = " HireTransactionsStatus.
  427.            Stop Run.
  428.  
  429.       ******************************************************************
  430.       *                    OpenSalesTransactions                       *
  431.       ******************************************************************
  432.  
  433.        A116-OpenSalesTransactions.
  434.            Open i-o SalesTransactions.
  435.            if SalesTransactionsStatus not = InputOutputIsSuccessful
  436.                Perform A119-HandleFatalError
  437.            end-if.
  438.  
  439.       ******************************************************************
  440.       *                        Handle Fatal Error                      *
  441.       ******************************************************************
  442.  
  443.        A119-HandleFatalError.
  444.            Display "Fatal error in A119 ".
  445.            Display "SalesTransactionsStatus = " SalesTransactionsStatus.
  446.            Stop Run.
  447.  
  448.       ******************************************************************
  449.       *                         Do Main Process                        *
  450.       ******************************************************************
  451.  
  452.        A112-DoMainProcess.
  453.            Perform A11A-InitializeFunction.
  454.            Perform A11B-HandleMainProcess.
  455.  
  456.       ******************************************************************
  457.       *                      Initialize Function                       *
  458.       ******************************************************************
  459.  
  460.        A11A-InitializeFunction.
  461.            Move ItIsFalse to MainProcessIsOver.
  462.  
  463.       ******************************************************************
  464.       *                      Handle Main Process                       *
  465.       ******************************************************************
  466.  
  467.        A11B-HandleMainProcess.
  468.            Perform A11C-HandleMainProcess
  469.            until MainProcessIsOver = ItIsTrue.
  470.  
  471.        A11C-HandleMainProcess.
  472.            Perform A11D-DisplayMainMenu.
  473.            Perform A11E-GetUserChoice.
  474.            Perform A11F-ExecuteSelectedFunction.
  475.  
  476.       ******************************************************************
  477.       *                       Display Main Menu                        *
  478.       ******************************************************************
  479.  
  480.        A11D-DisplayMainMenu.
  481.            Display "1) Stock 2) Hired tools 3) Sold tools 4) Quit"
  482.            Display "Your choice: ".
  483.  
  484.       ******************************************************************
  485.       *                         Get User Choice                        *
  486.       ******************************************************************
  487.  
  488.        A11E-GetUserChoice.
  489.            Accept ResponseOfUser.
  490.  
  491.       ******************************************************************
  492.       *                  Execute Selected Function                     *
  493.       ******************************************************************
  494.  
  495.        A11F-ExecuteSelectedFunction.
  496.            Evaluate True
  497.                When ResponseOfUser = StockFileWillBeMaintained
  498.                    Perform A11G-MaintainStockFile
  499.                When ResponseOfUser = HiredToolsFileWillBeMaintained
  500.                    Perform A11H-MaintainHiredToolsFile
  501.                When ResponseOfUser = SoldToolsFileWillBeMaintained
  502.                    Perform A11I-MaintainSoldToolsFile
  503.                When ResponseOfUser = ProgramWillBeQuit
  504.                    Move ItIsTrue to MainProcessIsOver
  505.                When Other
  506.                    Display "Wrong choice! Please try again"
  507.            End-Evaluate.
  508.  
  509.       ******************************************************************
  510.       *                      Maintain Stock File                       *
  511.       ******************************************************************
  512.  
  513.        A11G-MaintainStockFile.
  514.            Perform A12A-InitializeFunction.
  515.            Perform A12B-DoMaintainStockFile.
  516.  
  517.       ******************************************************************
  518.       *                      Initialize Function                       *
  519.       ******************************************************************
  520.  
  521.        A12A-InitializeFunction.
  522.            Move ItIsFalse to StockFileMaintenanceIsOver.
  523.  
  524.       ******************************************************************
  525.       *                    Do Maintain Stock File                      *
  526.       ******************************************************************
  527.  
  528.        A12B-DoMaintainStockFile.
  529.            Perform A12C-DoMaintainStockFile
  530.            until StockFileMaintenanceIsOver = ItIsTrue.
  531.  
  532.        A12C-DoMaintainStockFile.
  533.            Perform A12H-GetUserChoice.
  534.            Perform A12I-ExecuteSelectedFunction.
  535.  
  536.       ******************************************************************
  537.       *                         Get User Choice                        *
  538.       ******************************************************************
  539.  
  540.        A12H-GetUserChoice.
  541.            Display "1) Add record 2) Update record 3) Delete Record 4) I
  542.       -    "quire record 5) Quit"
  543.            Accept ResponseOfUser.
  544.  
  545.       ******************************************************************
  546.       *                  Execute Selected Function                     *
  547.       ******************************************************************
  548.  
  549.        A12I-ExecuteSelectedFunction.
  550.            Evaluate True
  551.                When ResponseOfUser = StockDataWillBeAdded
  552.                    Perform A12D-AddStockData
  553.                When ResponseOfUser = StockDataWillBeUpdated
  554.                    Perform A12E-UpdateStockData
  555.                When ResponseOfUser = StockDataWillBeDeleted
  556.                    Perform A12F-DeleteStcokData
  557.                When ResponseOfUser = StockDataWillBeInquired
  558.                    Perform A12G-InquireStcokRecord
  559.                When ResponseOfUser = StockMenuWillBeQuit
  560.                    Move ItIsTrue to StockFileMaintenanceIsOver
  561.                When Other
  562.                    Display "Wrong choice! Please try again"
  563.            End-Evaluate.
  564.  
  565.       ******************************************************************
  566.       *                        Add Stock Data                          *
  567.       ******************************************************************
  568.  
  569.        A12D-AddStockData.
  570.            Perform A121-EnterStockData.
  571.            Perform A122-FillStockRecord.
  572.            Write ToolStockRecord.
  573.            If ToolStockStatus not = InputOutputIsSuccessful
  574.                Perform A123-HandleFatalError
  575.            End-If.
  576.  
  577.       ******************************************************************
  578.       *                        Enter Stock Data                        *
  579.       ******************************************************************
  580.  
  581.        A121-EnterStockData.
  582.            Display "Enter NUMBER OF STOCK".
  583.            Accept WToolStockStocknum.
  584.            Display "Enter TOOL CODE SELL".
  585.            Accept WToolStockCodesell.
  586.            Display "Enter TOOL CODE HIRE".
  587.            Accept WToolStockCodehire.
  588.            Display "Enter STOCK LEVEL HIRE".
  589.            Accept WToolStockLevelhire.
  590.            Display "Enter STOCK LEVEL SELL".
  591.            Accept WToolStockLevelsell.
  592.  
  593.       ******************************************************************
  594.       *                      Write Stock Record                        *
  595.       ******************************************************************
  596.  
  597.        A122-FillStockRecord.
  598.            Move WToolStockStocknum to ToolStockStocknum.
  599.            Move WToolStockCodesell to ToolStockCodesell.
  600.            Move WToolStockCodehire to ToolStockCodehire.
  601.            Move WToolStockLevelhire to ToolStockLevelhire.
  602.            Move WToolStockLevelsell to ToolStockLevelsell.
  603.  
  604.       ******************************************************************
  605.       *                        Handle Fatal Error                      *
  606.       ******************************************************************
  607.  
  608.        A123-HandleFatalError.
  609.            Display "Fatal error in A123 ".
  610.            Display "ToolStockStatus = " ToolStockStatus.
  611.            Stop Run.
  612.  
  613.       ******************************************************************
  614.       *                        Update Stock Data                       *
  615.       ******************************************************************
  616.  
  617.        A12E-UpdateStockData.
  618.            Display "This function is not completed yet".
  619.            Display "Please strike any key to continue".
  620.            Stop " ".
  621.  
  622.       ******************************************************************
  623.       *                 Maintain Hired Tools File                      *
  624.       ******************************************************************
  625.  
  626.        A12F-DeleteStcokData.
  627.            Display "This function is not completed yet".
  628.            Display "Please strike any key to continue".
  629.            Stop " ".
  630.  
  631.       ******************************************************************
  632.       *                     Inquire Stock Record                       *
  633.       ******************************************************************
  634.  
  635.        A12G-InquireStcokRecord.
  636.            Display "Enter NUMBER OF STOCK".
  637.            Accept WToolStockStocknum.
  638.            Move WToolStockStocknum to ToolStockStocknum.
  639.            Read ToolStock.
  640.            If ToolStockStatus = InputOutputIsSuccessful
  641.                Perform A12J-MoveStockRecordToDisplay
  642.                Perform A12K-DisplayStockRecord
  643.            Else
  644.                Display "Stock record is not found in the file"
  645.                Display "Please strike any key to continue"
  646.                Stop " "
  647.            End-If.
  648.  
  649.       ******************************************************************
  650.       *             Move Stock Record to Display Variables             *
  651.       ******************************************************************
  652.  
  653.        A12J-MoveStockRecordToDisplay.
  654.            Move ToolStockStocknum to WToolStockStocknum.
  655.            Move ToolStockCodesell to WToolStockCodesell.
  656.            Move ToolStockCodehire to WToolStockCodehire.
  657.            Move ToolStockLevelhire to WToolStockLevelhire.
  658.            Move ToolStockLevelsell to WToolStockLevelsell.
  659.  
  660.       ******************************************************************
  661.       *                    Display Stock Record                        *
  662.       ******************************************************************
  663.  
  664.        A12K-DisplayStockRecord.
  665.            Display "NUMBER OF STOCK.: " WToolStockStocknum.
  666.            Display "TOOL CODE SELL..: " WToolStockCodesell.
  667.            Display "TOOL CODE HIRE..: " WToolStockCodehire.
  668.            Display "STOCK LEVEL HIRE: " WToolStockLevelhire.
  669.            Display "STOCK LEVEL SELL: " WToolStockLevelsell.
  670.  
  671.       ******************************************************************
  672.       *                 Maintain Hired Tools File                      *
  673.       ******************************************************************
  674.  
  675.        A11H-MaintainHiredToolsFile.
  676.            Perform A124-EnterHiredToolData.
  677.            Perform A125-FillHireTransRecord.
  678.            Write HireTransactionsRecord.
  679.            If HireTransactionsStatus not = InputOutputIsSuccessful
  680.                Perform A126-HandleFatalError
  681.            End-If.
  682.  
  683.       ******************************************************************
  684.       *                     Enter Hired Tool Data                      *
  685.       ******************************************************************
  686.  
  687.        A124-EnterHiredToolData.
  688.            Display "Enter CUSTOMER NUMBER".
  689.            Accept WHTCustNum.
  690.            Display "Enter COMPLETE TOOL CODE HIRE".
  691.            Display "First enter TYPE OF TOOL".
  692.            Accept WHTType.
  693.            Display "Now enter SERIAL NUMBER OF TOOL".
  694.            Accept WHTSerial.
  695.            Display "Finallly enter whether TOOL IS FOR HIRE `H` OR SALE
  696.       -    "`S`".
  697.            Accept WHTSorh.
  698.            Display "Enter NUMBER OF QUANTITY".
  699.            Accept WHTQuantity.
  700.            Display "Enter UNIT PRICE".
  701.            Accept WHTUnitprice.
  702.            Display "Enter TAX RATE".
  703.            Accept WHTTaxrate.
  704.            Display "Enter NUMBER OF DAY HIRE".
  705.            Accept WHTNumhire.
  706.            Display "Enter HIRE CHRAGE PER DAY".
  707.            Accept WHTChgday.
  708.            Display "Enter TOTAL AMOUNT TO PAY".
  709.            Accept WHTTotal.
  710.  
  711.       ******************************************************************
  712.       *                  Fill HireTransactionsRecord                   *
  713.       ******************************************************************
  714.  
  715.        A125-FillHireTransRecord.
  716.            Move WHTCustNum to HTCustNum.
  717.            Move WHTType to HTType.
  718.            Move WHTSerial to STSerial.
  719.            Move WHTSorh to HTSorh.
  720.            Move WHTQuantity to HTQuantity.
  721.            Move WHTUnitprice to HTUnitprice.
  722.            Move WHTTaxrate to HTTaxrate.
  723.            Move WHTNumhire to HTNumhire.
  724.            Move WHTChgday to HTChgday.
  725.            Move WHTTotal to HTTotal.
  726.  
  727.       ******************************************************************
  728.       *                        Handle Fatal Error                      *
  729.       ******************************************************************
  730.  
  731.        A126-HandleFatalError.
  732.            Display "Fatal error in A126 ".
  733.            Display "HireTransactionsStatus = " HireTransactionsStatus.
  734.            Stop Run.
  735.  
  736.       ******************************************************************
  737.       *                   Maintain Sold Tools File                     *
  738.       ******************************************************************
  739.  
  740.        A11I-MaintainSoldToolsFile.
  741.            Perform A127-EnterSoldToolData.
  742.            Perform A128-FillSalesTransRecord.
  743.            Write SalesTransactionsRecord.
  744.            if SalesTransactionsStatus not = InputOutputIsSuccessful
  745.                Perform A129-HandleFatalError
  746.            end-if.
  747.  
  748.       ******************************************************************
  749.       *                     Enter Sold Tool Data                       *
  750.       ******************************************************************
  751.  
  752.        A127-EnterSoldToolData.
  753.            Display "Enter INVOICE NUMBER".
  754.            Accept WSTInvNum.
  755.            Display "Enter COMPLETE TOOL CODE SELL".
  756.            Display "First enter TYPE OF TOOL".
  757.            Accept WSTType.
  758.            Display "Now enter SERIAL NUMBER OF TOOL".
  759.            Accept WSTSerial.
  760.            Display "Finally enter whether TOOL IS FOR  HIRE `H` OR SALE
  761.       -    "`S`".
  762.            Accept WSTSorh.
  763.            Display "Enter NUMBER OF QUANTITY".
  764.            Accept WSTQuantity
  765.            Display "Enter UNIT PRICE".
  766.            Accept WSTUnitPrice.
  767.            Display "Enter TAX RATE".
  768.            Accept WSTTaxRate.
  769.            Display "Enter TOTAL AMOUNT TO PAY".
  770.            Accept WSTTotal.
  771.  
  772.       ******************************************************************
  773.       *                  Fill SalesTransactionsRecord                  *
  774.       ******************************************************************
  775.  
  776.        A128-FillSalesTransRecord.
  777.            Move WSTInvNum to STInvNum.
  778.            Move WSTType  to STType.
  779.            Move WSTSerial to STSerial.
  780.            Move WSTSorh to STSorh.
  781.            Move WSTQuantity to STQuantity.
  782.            Move WSTUnitPrice to STUnitPrice.
  783.            Move WSTTaxRate to STTaxRate.
  784.            Move WSTTotal to STTotal.
  785.  
  786.       ******************************************************************
  787.       *                        Handle Fatal Error                      *
  788.       ******************************************************************
  789.  
  790.        A129-HandleFatalError.
  791.            Display "Fatal error in A129 ".
  792.            Display "SalesTransactionsStatus = " SalesTransactionsStatus.
  793.            Stop Run.
  794.  
  795.       ******************************************************************
  796.       *                      Terminate Program                         *
  797.       ******************************************************************
  798.  
  799.        A113-Terminate-Program.
  800.            If FatalIOErrorHasOccured = ItIsTrue
  801.                Perform A11P-HandleAbnormalEnd
  802.            End-if.
  803.            Perform A11J-CloseToolStockFile.
  804.            Perform A11L-CloseHiredToolsFile.
  805.            Perform A11N-CloseSoldToolsFile.
  806.            Display "Program has ended successfully".
  807.            Stop Run.
  808.  
  809.       ******************************************************************
  810.       *                     Handle Abnormal End                        *
  811.       ******************************************************************
  812.  
  813.        A11P-HandleAbnormalEnd.
  814.            Display "Program has ended abnormally".
  815.            Stop Run.
  816.